package com.moxing.admin.common.entity;


import lombok.Data;
import java.io.Serializable;

@Data
public class User implements Serializable {
    /**
     * 用户唯一标识ID
     */
    private Long userId;

    /**
     * 用户名
     */
    private String username;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 密码(加密存储)
     */
    private String password;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 头像URL
     */
    private String avatar;

    /**
     * 总容量(字节)，默认10GB
     */
    private Long totalCapacity;

    /**
     * 已使用容量(字节)
     */
    private Long usedCapacity;

    /**
     * 账户状态(0:禁用,1:正常,2:限制上传,3:限制下载)
     */
    private Integer accountStatus;

    /**
     * 用户等级(0:普通用户,1:VIP,2:SVIP)
     */
    private Integer userLevel;

    /**
     * 安全问题
     */
    private String securityQuestion;

    /**
     * 安全问题答案(加密存储)
     */
    private String securityAnswer;

    /**
     * 最后登录时间
     */
    private String lastLoginTime;

    /**
     * 最后登录IP
     */
    private String lastLoginIp;

    /**
     * 注册时间
     */
    private String registerTime;

    /**
     * 注册IP
     */
    private String registerIp;

    /**
     * 邮箱是否验证(0:未验证,1:已验证)
     */
    private Integer emailVerified;

    /**
     * 手机号是否验证(0:未验证,1:已验证)
     */
    private Integer phoneVerified;

    /**
     * 是否开启双因素认证(0:关闭,1:开启)
     */
    private Integer twoFactorAuth;

    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 身份证号
     */
    private String idCard;

    /**
     * 性别(0:未知,1:男,2:女)
     */
    private Integer gender;

    /**
     * 生日
     */
    private String birthday;

    /**
     * 个性签名
     */
    private String signature;

    /**
     * VIP到期时间
     */
    private String vipExpireTime;

    /**
     * 邀请码
     */
    private String invitationCode;

    /**
     * 邀请人ID
     */
    private Long invitedBy;

    /**
     * 存储节点标识
     */
    private String storageNode;

    /**
     * 是否删除(0:正常,1:删除)
     */
    private Integer isDeleted;

    private String token;
}
